数组
对于类型T,T[size]就是“具有size个T类型的元素的数组”类型。这些元素的下标从0到size-1。看下面例子:
float v[3]; // 一个数组,包含3歌浮点数:v[0], v[1], v[2]
char* a[32]; // 一个数组,包含32个到char的指针:a[0]..a[31]
数组元素的个数,即数组的界,必须是一个常量表达式(C.5节)。如果你需要变化的界,那么请用vector(3.7.1节、16.3节)。例如,
void f(int i)
{
int v1[i]; // 错误❌:数组大小必须是常量表达式
vector<int> v2(i); // 可以
}
多维数组被表示为数组的数组。例如,
int d2[10][20]; // d2是一个包含10个各包含20个整数的数组的数组
其他语言对数组的界采用逗号记法,用在这里将产生一个编译时错误。因为逗号(,)是序列运算符(6.2.2节),不允许出现在常量表达式里。例如,请试试这个:
int bad[5,2]; // 错误❌:逗号不允许出现在常量表达式里
多维数组在C.7节描述。在底层代码中之外最好避免使用它们。
🔚